/**
 * map工具类
 * You can use this map like this:
 * var myMap = new Map();
 * myMap.put("key","value");
 * var key = myMap.get("key");
 * myMap.remove("key");
 */

function MapUtil(){
    this.elemets = new Array()
    this.size = function(){ return this.elemets.length }
    this.isEmpty = function(){return (this.elemets.length < 1) }
    this.clear = function(){ this.elements = new Array() }

    this.remove = function(_key){
        try{
            for(var i = 0; i < this.elements.length; i++){
                if(this.elemets[i].key = _key){
                    this.elements.splice(i, 1);
                }
            }
        }catch(err){
            console.log(err);
            return false;
        }
        return false;
    }

    this.put = function(_key,_value){
        this.remove(_key);
        this.elements.push({
            key: _key,
            value: _value
        })
    }

    this.get = function(_key){
        try{
            for(var i = 0; i < this.elements.length ; i++ ){
                if( this.element[i].key == _key){
                    return this.elements[i].value
                }
            }
        }catch (err){
            console.log(err)
            return null
        }
    }

    this.element = function(_index){
        if(_index < 0 || _index >= this.elements.length ){
            return null;
        }
        return this.elements[_index];
    }

    this.containsKey = function(_key){
        try{
            for(var i = 0; i< this.elements.length; i++){
                if(this.elemets[i].key == _key){
                    return true;
                }
            }
        }catch (err){
            console.log(err);
            return false;
        }
        return false;
    }

    this.keys = function(){
        var arr = new Array();
        for(var i = 0; i< this.elemets.length; i++){
            arr.push(this.elements[i].key);
        }
        return arr;
    }

    this.values = function(){
        var arr = new Array();
        for(var i = 0; i< this.elemets.length; i++){
            arr.push(this.elements[i].value);
        }
        return arr;
    }
}

